ديف أوبس

مشاركة الملفات والطباعة عبر Samba

استخدام Samba للتواصل الشبكي بين أوبنتو وويندوز لمشاركة الملفات وللطباعة

تُعد مسألة التكامل بين أنظمة التشغيل المختلفة من القضايا الحيوية في بيئات العمل المختلطة، حيث تتواجد أجهزة حاسوب تعمل بأنظمة تشغيل متنوعة كويندوز ولينكس. من بين الأدوات الفعّالة التي تتيح تحقيق هذا التكامل، يبرز برنامج Samba بوصفه حلاً شاملاً ومرناً لتبادل الملفات وتقديم خدمات الطباعة بين أنظمة لينكس (مثل أوبنتو) وأنظمة ويندوز، إذ يُمكّن من مشاركة الموارد الشبكية بكل سلاسة وفعالية. يُعتبر Samba تجسيداً لتنفيذ بروتوكولات SMB/CIFS (Server Message Block/Common Internet File System)، ما يسمح للأجهزة العاملة بنظام لينكس بمحاكاة خوادم ويندوز والتفاعل مع الأجهزة الأخرى على الشبكة باستخدام هذه البروتوكولات.

في هذا السياق، يوفر Samba إمكانيات عديدة تشمل مشاركة الملفات والطابعات، الانضمام إلى نطاق Active Directory، وتحديد صلاحيات الوصول للمستخدمين، إلى جانب إمكانية التحقق من الهوية والمصادقة بطريقة متوافقة مع بيئة Windows. من هنا تأتي أهمية التعمق في فهم كيفية إعداد Samba في أوبنتو لتمكين المشاركة الشبكية مع أجهزة ويندوز، مع التركيز على الأمان، الأداء، وسهولة الاستخدام.


مفهوم Samba ودوره في التواصل الشبكي

تم تطوير Samba في الأصل بواسطة Andrew Tridgell في أوائل التسعينيات، ويُعد مشروعاً مفتوح المصدر يُتيح لأنظمة يونكس ولينكس التفاعل مع بروتوكولات ويندوز الشبكية. يوفّر Samba وسيلة لإنشاء خادم ملفات وطباعة على نظام أوبنتو، بحيث يتمكن المستخدمون على شبكات ويندوز من الوصول إلى الموارد بنفس الكفاءة وكأنها مُقدَّمة من خادم Windows فعلي. كما يدعم Samba المصادقة مع Active Directory وLDAP، ما يُمكّنه من العمل في بيئات شبكية مؤسسية معقدة.


تثبيت Samba على أوبنتو

لبداية استخدام Samba على نظام Ubuntu، يجب أولاً تثبيت الحزمة الضرورية عبر سطر الأوامر. العملية تبدأ بتنفيذ الأوامر التالية:

bash
sudo apt update sudo apt install samba

بعد التثبيت، يتم تفعيل خدمة smbd تلقائياً، وهي المسؤولة عن تشغيل خادم Samba. يمكن التحقق من حالة الخدمة باستخدام الأمر:

bash
sudo systemctl status smbd

ينبغي أن تكون الخدمة نشطة (active) وتعمل دون أخطاء. في حال وجود مشاكل، يمكن مراجعة السجلات باستخدام:

bash
sudo journalctl -xe

إعداد مشاركة الملفات بين أوبنتو وويندوز

إنشاء مجلد للمشاركة

أول خطوة عملية بعد تثبيت Samba تتمثل في تحديد المجلدات التي ستُشارك مع أجهزة ويندوز. على سبيل المثال، لإنشاء مجلد باسم partage في دليل /srv، نستخدم:

bash
sudo mkdir -p /srv/partage sudo chown nobody:nogroup /srv/partage sudo chmod 0777 /srv/partage

هذه الأذونات تتيح لجميع المستخدمين على الشبكة الوصول إلى هذا المجلد بدون قيود، وهو خيار مناسب للشبكات المنزلية أو البيئات المفتوحة.

تعديل ملف إعدادات Samba

ملف الإعداد الرئيسي لـ Samba يُوجد في المسار:

bash
/etc/samba/smb.conf

لإعداد مشاركة جديدة، يتم تحرير الملف باستخدام محرر نصي مثل nano:

bash
sudo nano /etc/samba/smb.conf

ثم نُضيف التكوين التالي في نهاية الملف:

ini
[Partage] path = /srv/partage browseable = yes read only = no guest ok = yes

هذا التكوين يُنشئ مشاركة باسم Partage، ويُتيح الوصول إلى المجلد للجميع دون الحاجة إلى مصادقة.

إعادة تشغيل خدمة Samba

بعد حفظ التعديلات، يجب إعادة تشغيل الخدمة لتطبيق الإعدادات الجديدة:

bash
sudo systemctl restart smbd

الوصول إلى المشاركة من جهاز ويندوز

على جهاز يعمل بنظام Windows، يمكن الوصول إلى المشاركة عبر متصفح الملفات باستخدام المسار التالي:

\\adresse_ip_ubuntu\Partage

حيث يتم استبدال adresse_ip_ubuntu بعنوان IP الخاص بجهاز أوبنتو. يمكن معرفة العنوان باستخدام الأمر:

bash
ip a

تظهر نافذة تطلب بيانات اعتماد، أو قد يُسمح بالدخول مباشرة إذا كان الوصول كـ “guest” مفعلاً كما في الإعدادات السابقة.


مشاركة الطابعات عبر Samba

Samba يُمكّن أيضاً من مشاركة الطابعات المثبتة على نظام أوبنتو مع أجهزة ويندوز، وهو أمر مهم في المكاتب أو البيئات الشبكية التي تعتمد على طابعات موصولة محلياً بأجهزة لينكس.

تثبيت CUPS (نظام الطباعة الموحد)

أوبنتو يعتمد على نظام CUPS لإدارة الطباعة. لتثبيته وضبطه:

bash
sudo apt install cups sudo usermod -a -G lpadmin $USER

ثم نُفعّل الوصول إلى واجهة الويب:

bash
sudo cupsctl --remote-any sudo systemctl restart cups

واجهة CUPS تُتاح عبر المتصفح:

arduino
http://localhost:631

ضبط Samba لمشاركة الطابعات

نُعدّل ملف /etc/samba/smb.conf مرة أخرى، ونُضيف الجزء التالي:

ini
[printers] comment = All Printers path = /var/spool/samba browseable = no guest ok = yes writable = no printable = yes [print$] comment = Printer Drivers path = /var/lib/samba/printers browseable = yes read only = yes guest ok = no

ثم نعيد تشغيل Samba وCUPS:

bash
sudo systemctl restart smbd sudo systemctl restart cups

بذلك، ستظهر الطابعات المُشاركة لأجهزة ويندوز على الشبكة ويمكن تثبيتها عبر “إضافة طابعة”.


التحكم في الصلاحيات والمستخدمين

Samba يُتيح تحكماً متقدماً في أذونات الوصول. بدلاً من إتاحة المشاركة للجميع، يمكن تقييد الوصول لمستخدمين محددين.

إنشاء مستخدم Samba

bash
sudo smbpasswd -a nom_utilisateur

هذا المستخدم يجب أن يكون موجوداً في النظام أولاً. لإنشائه:

bash
sudo adduser nom_utilisateur

بعد ذلك، نُعدّل الإعدادات في smb.conf:

ini
[Partage] path = /srv/partage browseable = yes read only = no valid users = nom_utilisateur

بهذه الطريقة، يتم منع الوصول إلا للمستخدم الذي نُحدد اسمه في الإعدادات.


الجدول التالي يُوضح الفروقات بين أنواع مشاركة Samba:

العنصر مشاركة عامة (Guest) مشاركة مخصصة (بمستخدمين)
مستوى الأمان منخفض مرتفع
صلاحيات التعديل مفتوحة مقيّدة حسب المستخدم
الاستخدام النموذجي شبكات منزلية شبكات مكتبية/مؤسسية
يتطلب مصادقة؟ لا نعم
دعم سجلات الوصول محدود موسع

مراقبة واختبار الاتصال

للتأكد من عمل Samba بشكل سليم، يمكن استخدام أوامر مثل:

bash
smbclient -L localhost

يعرض هذا الأمر قائمة بالمشاركات المتاحة. كما يمكن التحقق من الاتصال من ويندوز باستخدام الأمر:

cmd
net view \\adresse_ip_ubuntu

في حال ظهور أخطاء، يجب مراجعة السجلات في:

bash
/var/log/samba/log.smbd

أو استخدام أدوات تصحيح مثل testparm للتحقق من صحة ملف الإعدادات:

bash
testparm

الأمن وتشفير الاتصال

في البيئات التي تتطلب مستوى أمان مرتفع، يُنصح بتفعيل تشفير الاتصال بين Samba والأجهزة العميلة، وذلك عبر تعديل ملف الإعداد:

ini
[global] smb encrypt = required

يجب التأكد من أن الأجهزة العميلة (مثل Windows 10/11) تدعم تشفير SMB3 لضمان التوافق.


تكامل Samba مع Active Directory

في البيئات المهنية الكبيرة، غالباً ما يكون هناك خادم Active Directory مركزي لإدارة الهوية. يمكن ربط أوبنتو بشبكة Windows Domain باستخدام أدوات مثل realmd وwinbind وkrb5.

عملية الانضمام تبدأ بـ:

bash
sudo apt install realmd sssd adcli sudo realm join --user=administrateur domaine.local

ثم تُضبط إعدادات Samba لتدعم المصادقة عبر Active Directory باستخدام تهيئة security = ads وrealm = domaine.local داخل smb.conf.


تحديثات ودعم Samba

كون Samba مشروعاً مفتوح المصدر ونشط التطوير، فإنه يتلقى تحديثات دورية تتضمن تصحيحات أمان وتحسينات في الأداء. يُنصح دوماً بالحفاظ على النظام محدثاً باستخدام:

bash
sudo apt update && sudo apt upgrade

كما تُتاح التحديثات الرئيسية عبر مستودعات التوزيعة أو بإعادة بناء Samba من المصدر عند الحاجة إلى ميزات حديثة غير مدعومة في الإصدارات القديمة.


الخلاصة التقنية

Samba يُمثل أداة قوية ومفتوحة المصدر تُسهم في سد الفجوة بين أنظمة لينكس وويندوز في مجال مشاركة الموارد الشبكية، سواء على مستوى الملفات أو الطابعات. بفضل مرونته ودعمه لبروتوكولات Windows التقليدية، يُستخدم على نطاق واسع في البيئات المنزلية والمهنية، ويوفّر مستويات مختلفة من الأمان والصلاحيات حسب احتياج المستخدم أو المؤسسة. يُتيح Samba كذلك تكاملاً سلساً مع أنظمة Active Directory، مما يجعله خياراً مثالياً لبناء شبكات هجينة متعددة الأنظمة مع الحفاظ على كفاءة العمل والتواصل الآمن بين المستخدمين.


المراجع:

  1. Samba Project Documentation – https://www.samba.org/samba/docs/

  2. Ubuntu Community Help Wiki – https://help.ubuntu.com/community/Samba